#include<iostream>
#include<string>
#include<jsoncpp/json/json.h>
#include<memory>
#include<sstream>

int main()
{
    Json::Value root;
    root["name"]="zs";
    root["high]=1.78f;
    root["sex"]="男";

    Json::StyledWriter swriter;//(好看的风格）序列化，字符串内部有\n,网络传输有更多字节
    std::string s=swriter.write(root);
    std::cout<<s;

    //反序列化
    Json::Value droot;
    Json::Reader reader;
    reader.parse(s,droot);

    std::string name =droot["name"].asString();
    float high=droot["high"].asFloat();
    string sex=droot["sex"].asString();




    // Json::Value root1;
    // root1["k1"]="v1";
    // root1["k2"]="v2";

    // root["set"]=root1;

    // root.appent(root1);//一个Json里面套一个


    // //序列化1.
    // std::string s=root.toStyledString();
    // std::cout<<s;
    //Json::StreamWriterBuilder wbuilder;//序列化所需要的工厂
    //std::unique_ptr<Json::StreamWriter> writer=wbuilder.newStreamWriter();
    // std::stringtream ss;
    // writer->write(root,&ss);//将value对象转化为流式的对象
    // std::cout<<ss.str();

    //2.
    //Json::StyledWriter swriter;//(好看的风格）序列化，字符串内部有\n,网络传输有更多字节
    // std::string s=swriter.write(root);

    Json::FastWriter fwriter;//快速序列化
    std::string s=fwriter.write(root);
    std::cout<<s;

    return 0;

}

